//:C05:ToLower2.cpp {-mwcc}
#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
using namespace std;

template<class charT> charT strTolower(charT c) {
  return tolower(c);    // One-arg version called  
}

int main(void) {
  string s("LOWER");
  transform(s.begin(), s.end(), s.begin(), &strTolower<char>);
  cout << s << endl;
}